﻿namespace GravityWorks.RockPaperScissors.Toolkit
{
    public interface IPlayer
    {
        /// <summary>
        /// This is where you do all the hard work figuring out what throw will beat your opponent.  Throwing Exceptions or taking too long will result in a loss for your team.
        /// </summary>
        /// <param name="gameLog">Tracks both players scores/match results.  You get a copy of the GameLog.</param>
        /// <param name="rules">Defines the rules for this shot.</param>
        /// <param name="round">How many rounds have passed for this match.</param>
        /// <returns>Hit em with your best shot! Please be aware, that your object will be recreated on each match, so you will lose state. Please use the gamelog to keep track of your state</returns>
        MoveType Shoot(GameLog gameLog, RuleSet rules, int round);
    }
}
